package com.joker.demo.admin.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 任务日志VO
 *
 * @author : feixiang.li
 * @since : 2025-07-26 19:38
 */
@Data
public class JobLogVO implements Serializable {

    /**
     * 日志ID
     */
    private Integer id;

    /**
     * 任务ID
     */
    private Integer jobId;

    /**
     * 任务名称
     */
    private String jobName;

    /**
     * 应用名称
     */
    private String groupName;

    /**
     * 流程ID
     */
    private Integer flowId;

    /**
     * 下一个任务日志ID
     */
    private Integer nextJobLogId;

    /**
     * 触发时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date triggerTime;

    /**
     * 触发结果
     */
    private Integer triggerCode;

    /**
     * 触发结果描述
     */
    private String triggerCodeDesc;

    /**
     * 触发日志
     */
    private String triggerMsg;

    /**
     * 执行开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;


    /**
     * 执行结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
    /**
     * 执行器地址
     */
    private String executorAddress;

    /**
     * 执行器Handler
     */
    private String executorHandler;

    /**
     * 执行参数
     */
    private String executorParam;

    /**
     * 执行器分片索引
     */
    private Integer executorShardingIndex;

    /**
     * 分片参数
     */
    private String executorShardingParam;

    /**
     * 失败重试次数
     */
    private Integer executorFailRetryCount;

    /**
     * 告警状态
     */
    private Integer alarmStatus;

    /**
     * 耗时(ms)
     */
    private Integer timeCost;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
} 